約 2,022,106 件
https://w.atwiki.jp/stat_semi/pages/19.html
データをテキストで直打ちしてベクトルにするのも慣れればなんてことはないですが,それでもデータの入力・管理はExcelやCalcのような表計算ソフトのほうがやりやすいと思います.ここでは,データをExcelやCalcからRへ引っ張ってくる方法を説明します. データフレームの作成 Rで作成することのできるデータの構造には、ベクトルのほか行列?、配列?、これらを組み合わせたリスト?などがありますが、まずはExcel形式と親和性の高いデータフレームについて説明します。データフレームはRの標準的なデータ構造ですから、ベクトルとデータフレームさえ知っていればかなり色々なことができるようになります。 データフレームは同じ長さのベクトルを複数個集めたものだと考えるとわかり易いと思います。データフレームはdata.frame()関数により作成します。引数としては同じ長さのベクトルを与えます。 name - c("a", "b", "c", "d", "e", "f") point - c(1.0, 1.5, 2.0, 1.1, 1.3, 0.7) rate - c("C", "A", "A", "B", "B", "B") data.frame(name, point, rate) name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B ここでは、長さ6のベクトル3つをまとめてデータフレームを作りました。上の例のではベクトルは最初にオブジェクトに格納しましたが、必ずしもこの手順に従う必要はありません。次のように直接data.frame()関数の中で指定することも可能です。 data.frame( + name = c("a", "b", "c", "d", "e", "f"), + point= c(1.0, 1.5, 2.0, 1.1, 1.3, 0.7), + rate = c("C", "A", "A", "B", "B", "B") + ) name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B ここでは「name=...」などとしてベクトルの名前を指定しましたが、指定しなかった場合は入力した命令に応じて自動で名前がつきます。ただしデータの参照の際などに困ることがありますから、名前を指定する、もしくはあらかじめオブジェクトにしたベクトルを利用してデータフレームを作成するようにしましょう。 data.frame(1 3,2 4,3 5) X1.3 X2.4 X3.5 1 1 2 3 2 2 3 4 3 3 4 5 代入と呼び出し 実際にはベクトルと同じで何かオブジェクトに代入しておいてから使うのが賢いやり方です。 my.data - data.frame(name, point, rate) こうしておけば、オブジェクト「my.data」の中にはがんばって作ったデータフレームを保存しておくことができます。使うときは、ベクトルと同じで名前を呼んでやります。 my.data name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B また、最初に「データフレームは同じ長さのベクトルを複数個集めたものだ」といいました。ですから、データフレームを構成しているベクトルを一部だけ引っ張ってくることもできます。それには、名前に続いて$マークをタイピングし、それに続けてベクトルの名前を打ち込んでやります。「データフレーム名$ベクトル名」といった具合です。実際にやってみましょう。 my.data$rate [1] C A A B B B Levels A B C 呼び出せました。なにやらLevelsというものが付いていますが、これはこのベクトルが「因子」ベクトルとして認識されていることを表しています。因子ベクトルはベクトルの要素の文字や数字によってグループ分けがなされます。ここではA B Cという3つのグループが認識されていることになります。このグループ分けはグラフを要素ごとに分けて書いたり、多重比較のような統計処理をしたりするときに重要となりますから頭の片隅にでも置いておいてください。必要な箇所では改めて説明します。 エクセルからデータを持ってくる データフレームのデータの並び方は表計算ソフトっぽいです。データ入力は表計算で行って、そいつをパパっとRに持ってきて統計処理やらなにやらができたら便利ですね。Rにはそういった要望にこたえるためのread.○○○()という一連の関数があります。クリップボード(Windowsとかでコピーのコマンド[Ctrl+Cとか]を実行したときに、データが一時的に収納される場所)へコピーしたExcel、またはオープンオフィスのCalcのデータをRへ移すには、read.delim()関数を使います。例えば、Excel上で次のような形のデータがあったとしましょう。 動物 頭数 サイズ ネコ 100 small シカ 10 middle シロナガスクジラ 1 ultimate そうしたらこのデータの範囲を選択してクリップボードにコピーします。[Ctrl+C]ですね。Macではコマンドキーとやらを使うと風のうわさに聞いたことがあります。ともかく、コピーができたらRのコンソールへ移動します。そこで「read.delim("clipboard")」とコマンドすればさきほどコピーしたデータを使って次のようにデータフレームを作ってくれます。 read.delim("clipboard") 動物 頭数 サイズ 1 ネコ 100 small 2 シカ 10 middle 3 シロナガスクジラ 1 ultimate read.delim()関数ではコピーした範囲の最初の行が勝手にベクトルの名前と認識されます。引数を設定することでこの認識をさせなくしたり、名前を自由に設定したりすることもできますが、さしあたってはExcelにデータを打ち込む時点で「最初の行を名前にする、データは縦に並べる」というルールを設けておくということにしましょう。 Rへのデータの取り込み方はこれだけではありません。例えば僕が以前ロガーを用いて採取していた温度と湿度のデータはテキストファイルにして10万行を超えるものもあり、そもそもExcelでの表示が無理でした。しかし、幸いロガーはデータをCSV形式で吐き出してくれていたので、Rのread.csv()関数によって読み込むことができました。 このように外部からのデータの取り込み方には色々あるわけですが、とりあえずここはRへのデータの取り込み?というページだけを作成しておいて説明はそっちにまわすことにします。 おそらくはこのクリップボードを介してのデータ取り込みが一番わかり易いでしょう。データの動きをイメージしやすいですし、ミスも少ないと思います。
https://w.atwiki.jp/nadebook/pages/219.html
マクロセキュリティを解除 「なでしこ」でExcelを操作する場合、もしもそのファイルにマクロ(またはVBA)が含まれていると、使用者のExcelによっては、マクロ警告のダイアログが表示されます。これは使用者のExcelでセキュリティが高めに設定されているために、危険なマクロウィルスを防止する機能が働くのです。 しかし、Excelを便利に使おうと思ってプログラムを書いたのに、いちいち警告ダイアログが出てしまうのは本末転倒です。そこで、使用者のExcelにかかっているマクロ・セキュリティを「なでしこ」で解除してしまおうというのが、下記のプログラムです。 #Excelのマクロを解除するプログラム(Excel2003対応) #オプション・ダイアログのタブは直前の操作に影響されますので、 #必ずエクセルが起動していない状態から始めます。 エクセル起動してエクセル新規ブック。 『%TO』をエクセルキー送信。 0.5秒待つ 「オプション」を窓ハンドル検索してオプションHndへ代入。 オプションHndへ『{LEFT}{UP}%S』を窓ハンドルキー送信。 0.5秒待つ 「セキュリティ」を窓ハンドル検索してセキュリティHndへ代入。 セキュリティHndへ『%L{ENTER}』を窓ハンドルキー送信。 0.5秒待つ オプションHndへ『{TAB}{ENTER}』を窓ハンドルキー送信。 エクセル終了して終了。 Excelにショートカットキーを送信することで、オプションダイアログを操作し、マクロ・セキュリティを解除しています。 もちろん、悪用厳禁です!
https://w.atwiki.jp/titech-phys-kakomon/pages/33.html
Excelとかの図がほしい Windowsでの仮想EPSプリンタの作成 実際に印刷[PostScriptオプション]から[EPS(Encapsulated PostScipt)]を選ぶところ EPSの枠調整 その他の方法 Windowsでの仮想EPSプリンタの作成 # 多分、最近のMacだとデフォルトでepsつくれるんじゃないかな。 # というか、Mac知らないからWindowsだけ。 発想は簡単。 Excelでつくったグラフを「ファイルとして印刷」することでepsをつくるだけ。 # 実はこの方法、印刷機能のあるソフトならExcel以外でも適用できる。 まずは、「ファイルとして印刷」する道具をつくる。 次のサイトが詳しい: http //keijisaito.info/arc/TeX/v_eps_printer.htm このサイトを参考に仮想EPSプリンタをつくる。 PSプリンタはなんでもいい。まあ、 EPSON LP-9200PS3 Apple LaserWriter 8500 とかが綺麗に出力されるかな。 実際に印刷 また、次のサイトを参照: http //keijisaito.info/arc/TeX/vector_pdf.htm 説明メンドイから補足だけしよう。 [PostScriptオプション]から[EPS(Encapsulated PostScipt)]を選ぶところ こうしないとカラーにならない。 直さなくても、白黒でちゃんとepsがつくられることが多い。 EPSの枠調整 GSViewの[File]から[PS to EPS]を選んでもできる。 その他の方法 OpenOffice Drawを使う。 ja Japanese Native language Project/OpenOffice.org日本ユーザー会 http //ja.openoffice.org/ ExcelでつくったグラフをコピーしてDrawに貼り付ける。 [ファイル]から[PDFとしてエクスポート]を選ぶとpdfがつくれる。 # epsもつくれるんだけど、端が欠けたりするんだよね…。 戻る
https://w.atwiki.jp/kojiro/pages/14.html
自サイトはたんぽこ通信。 基本は林檎使いで窓は仕事のみ。 10年来勤務した会社でExcel等のMicrosoft製品に触れ、ディープなユーザーとなるが、基本的に窓は嫌い。でも、いまだに仕事で窓とペンギンを使っている。 自サイトは趣味のページなのでMicrosoft関連の記事は一件もないが、このたび、手製のExcel4.0関数ヘルプを消失したことが判明。ネットを検索するも、求めるExcel4.0マクロまで突っ込んだサイトが見当たらなかったため、自分のためにwikiを作成することになる。Excel4.0にこだわる理由はそれしか使ったことがないから。 当wikiはMicrosoftとは何の関連もありませんし、Microsoft製品をプッシュするものでもありませんが、Microsoft Excelを少しでも便利に使うためにご利用ください。ただし、私人のwikiにつき、当wikiの情報を鵜呑みにして「間違っていた・損害を被った」等のクレームは受け付けられません。自己責任にてご使用ください。それ以外のお問い合わせ等はページ上部の管理者に連絡からいただければ、わかる範囲で返事をすることもあります。
https://w.atwiki.jp/ma-100140/pages/45.html
.Cells()の後の.Valueは省略せず明示したほうがよい。右辺は省略してもよいが、左辺や引数などの場合は省略しないほうが良い。 hisWorkBook は、実行しているマクロが記述されているブックを返す ActiveWorkBook は、アクティブなブックを返す
https://w.atwiki.jp/we_hate_sunshine/pages/72.html
.NETでExcelファイルを読み込むライブラリを作る Excel(Office)ファイルの扱いの難しさ Microsoft Officeのオートメーション機能を使用すれば、 コード上でOffice文書の作成から読み込みまで思いのままです。 ちょー便利に見えるこの機能ですが、.NET Frameworkとの相性は最悪としかいいようがありません。 その最大の理由は、一度使ったCOMオブジェクトに対し、 参照からはずれるときまたは必要なくなったとき、確実にオブジェクトの解放を行わなければならないことです。 これを怠ると、処理が終わったあとタスクにExcelのプロセスが残り続けることになります。 これは誰もが一度は直面する問題でしょう。 特にピリオドなどで間接的に参照していることに気づかず、 泥沼にはまる例はいろいろな掲示板を見ていても後を絶ちません。 問題はこればかりではなく、 Office製品にバージョンがあるように、 オートメーション(サーバー)にもバージョンがあることも懸念材料の一つ。 使用するOfficeのバージョンに合わせて使用するオートメーションのバージョンを変えなければならないのです。 つまりどういうことかというと、 例えばExcel2003でファイルを読み込むために書いたコードがExcel2000には使えないということ。 やってられませんね。 これを攻略するには遅延バインディングという手法が有効なのですが、 C#でこの方法を取るとかなり冗長なコードとなってしまいます。 (といっても解放解放ですでに冗長なんですが) 前置き終わり。 改善案 今回考えているのはExcelの表をメモリ上に落とすこと。 最近触れたADO.NETに触発された感もあるのですが、 Excelの表をDataTableのようなメモリ上の表に置き換えることができれば、 要素(セル)へのアクセスも楽チンだろうというもの。 DataTableのような大層なものはめんどくさいので、 セルと行とシートをリスト(List )で構成するようにしてみます。 また、遅延バインディングを用いてExcelのバージョンに依存しないようにするとともに、 Excel操作から完全に切り離した形にすることで、安心、安全を目指します。 ExcelReader Context ExcelReader Readメソッドを使ってExcelファイルを読み込めば、表データを収めたContextオブジェクトが手に入ります。 (Openメソッドは勉強のためのおまけ) Context シートを表すSheetオブジェクトをリストで持っています。 Sheet 行を表すRowオブジェクトをリストで持っています。 Row セルを表すStringオブジェクトをリストで持っています。 かなり単純です・・・。何かもっと機能をつけたければこいつらを改良してください。 バージョンUPの問題はうちもあるよ~。しかも2007はオートメーションサーバすらないよ~。 -- qutto (2007-04-05 00 40 29) あじっすか -- NZ-000 (2007-04-05 00 51 55) 名前 コメント
https://w.atwiki.jp/fumitan/pages/14.html
excelのt検定 p値=ttest(系列1,系列2,尾部,種類) ★尾部 1 片側 2 両側 ★種類 1 対応のあるデータ 2 対応無し等分散 3 対応有り不等分散
https://w.atwiki.jp/fumiduki1985/pages/291.html
PythonでExcelファイルの読み書きを行いたい場合、サードパーティ製のモジュールが複数存在している。 下記URLにて、一通りまとめられている。 http //www.python-excel.org/ このページのタグ一覧 Python プログラミング
https://w.atwiki.jp/eyes_33/pages/24.html
vbsは、こんな感じでいいのかな? mailExecFileName = "mail.xls" mailExcelPath = left(WScript.ScriptFullName,len(WScript.ScriptFullName) - len(WScript.ScriptName)) + mailExecFileName Set objExcel = WScript.GetObject(mailExcelPath,"Excel.Sheet") mailfrom = objExcel.Sheets("メール送信内容").Cells(3,2) mailto = objExcel.Sheets("メール送信内容").Cells(4,2) subject = objExcel.Sheets("メール送信内容").Cells(5,2) message = objExcel.Sheets("メール送信内容").Cells(6,2) Set oMsg = CreateObject("CDO.Message") oMsg.From = mailfrom oMsg.To = mailto oMsg.Subject = subject oMsg.TextBody = message vbCrLf Now oMsg.Send 後は、上記のvbsと同じところにmail.xlsを作って、「メール送信内容」って名前のシートを作って、こんな感じで書けばOKかな? 一行目は無視 二行目も無視 送信元 my@abc.co.jp 送信先 you@abc.co.jp 件名 自動送信の件名 メール内容 メールの本文
https://w.atwiki.jp/kojiro/pages/706.html
行と列を指定したセルの値 INDEX(配列,列番号,行番号) 配列 セル範囲を指定。 列番号 配列内にあり、値を返す列の番号を指定。左端を1 とします。 範囲が1 列の場合、省略できますが、必ず行番号を指定しなければなりません。 0 を指定すると列全体の値の配列が返されます。 配列の範囲外の値を指定すると、#REF! が返されます。 行番号 範囲内にあり、値を返す行の番号を指定。上端を1 とします。 範囲が1 行の場合、省略できますが、必ず列番号を指定しなければなりません。 0 を指定すると行全体の値の配列が返されます。 配列の範囲外の値を指定すると、#REF! が返されます。 例(下記はExcel のシートとします) A B C 1 単価 個数 2 りんご \97 40 3 バナナ \48 38 4 レモン \77 15 5 オレンジ \35 25 6 洋梨 \83 40 7 8 アーモンド \392 10 9 カシューナッツ \497 16 10 ピーナッツ \175 20 11 マカデミアナッツ \245 12 =index(A1 C11,2,3)=38 (C3 の参照) =index(C1 C11,,match(E1,A A,0))(E1 にはアーモンドと入力されているとします) =index(C1 C11,,8)=10 (C8 の参照) 2 番目の例が列番号を省略した場合。行番号を省略する場合は最後の引数なので単に, は要らないが、列番号を省略する場合にはその後に行番号が要るので,, とする。これは他の関数でも同様。 また、2 番目の例でmatch 関数を使っているので参考に。E1 の値はアーモンドでなくても可能。他のセルをさらに参照していてもいいし、計算によってカシューナッツになったりピーナッツになったりしてもいい。このように動的な使い方をするとExcel 関数は使い道が広がる。